package com.medical.model.param;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.medical.utils.JsonUtils;
import lombok.*;

import java.util.List;

/**
 * @author TISNIW
 * @version 1.0
 * @date 2025/6/14 0:13
 * @desc
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ChatParameters {
    @JsonProperty("model")
    private String model;//模型名称,必填
    @JsonProperty("messages")
    private List<Messages> messages;//消息列表,必填
    @JsonProperty("tools")
    private String tools;//JSON 中供模型使用的工具列表
    @JsonProperty("think")
    private Boolean think;//是否使用思考模式
    @JsonProperty("format")
    private String format; // 返回响应的格式。格式可以是 json 或 JSON 架构

    @JsonProperty("options")
    private Options options; //  模型文件文档中列出的其他模型参数
    @JsonProperty("stream")
    private Boolean stream; // 如果为 false，则响应将作为单个响应对象返回，而不是对象流
    @JsonProperty("keep_alive")
    private String keepAlive; // 控制模型在请求后加载到内存中的时间（默认值：5M）

    @Override
    public String toString() {
        return JsonUtils.writeValueAsString(this);
    }
}
